Developer --> Technical Publications
PATHHardware Documentation > USB Devices > Mac OS USB DDK API Reference


USB Interface Module (UIM)

The UIM provides the upper layers of the USB software with a hardware abstraction layer to the USB host controller interface hardware. The UIM communicates directly with the USB controller hardware to set up the appropriate communication links with the USB devices on the bus. The UIM also provides root hub simulation.

The UIM is a native driver 'ndrv' code fragment, as defined in "Designing Macintosh PCI Cards and Drivers." In addition to supporting the data export guidelines for ndrvs, the UIM provides USB specific data exports that define the UIM driver entry points and descriptor structures built for devices on the USB.

OpenFirmware builds a Name Registry entry for the host controller and matching UIM during hardware bring up time, prior to booting the operating system. The USB Manager uses the information in the Name Registry to communicate with the UIM. Once the UIM is loaded and begins hub simulation, the USB Manager determines that a hub is present and loads the hub driver. At this point, the hub driver begins monitoring all USB device activity at the USB hub simulation provided by the UIM.

A UIM is required for every USB bus controller implementation installed in the host. For example, multiple UIMs would be required on a host which has both a built-in USB host controller interface and a USB controller interface on a PCI card. Developers designing PCI, Card Bus, or any other controller interface to the USB may need to provide a UIM for their card interface. For information regarding the APIs needed for UIM software development, send email to the Apple USB evangelist at USB@apple.com.


© 1998 Apple Computer, Inc. – (Last Updated 23 Nov 98)

Previous | Back Up One Level | Next |